package com.csw.xuxianParent.xuxianRabbitmqDemo.consumer;

import com.csw.xuxianParent.xuxianRabbitmqDemo.RabbitmqDemoApplication;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest(classes = RabbitmqDemoApplication.class)
@RunWith(SpringRunner.class)
@Slf4j
public class RabbitmqTest {
	@Autowired
	private RabbitTemplate rabbitTemplate;

	@Test // 直接模式，一对一
	public void fun() {
		User user = new User(1, "名字");
		String jsonBean = new Gson().toJson(user);
		rabbitTemplate.convertAndSend("csw", jsonBean);
	}

	@Test // 分裂模式,通过交换机绑定队列（一对多）
	public void fun2() {
		rabbitTemplate.convertAndSend("jhq", "", "来自jhq的消息");
	}

	/**
	 * 主题匹配模式
	 */
	@Test // 主题模式
	public void sengTopic() {
		rabbitTemplate.convertAndSend("jhq-topic", "goods.aaa", "主题模式的消息");
	}

	@Test // 主题模式
	public void sengTopic2() {
		rabbitTemplate.convertAndSend("jhq-topic", "aaa.bbb.log", "主题模式的消息");
	}

	@Test // 主题模式
	public void sengTopic3() {
		rabbitTemplate.convertAndSend("jhq-topic", "goods.log", "主题模式的消息");
	}

}
